8c97b851facbbb14d7d47d128679ded9dad99776,retrofit-adapters/guava/src/main/java/retrofit2/adapter/guava/GuavaCallAdapterFactory.java,GuavaCallAdapterFactory,get,#Type#Annotation[]#Retrofit#,40
Before Change
@Override
public CallAdapter<?> get(Type returnType, Annotation[] annotations, Retrofit retrofit) {
if (TypeToken.of(returnType).getRawType() != ListenableFuture.class) {
return null;
}
if (!(returnType instanceof ParameterizedType)) {
throw new IllegalStateException("ListenableFuture return type must be parameterized"
+ " as ListenableFuture<Foo> or ListenableFuture<? extends Foo>");
}
Type innerType = ((ParameterizedType) returnType).getActualTypeArguments()[0];
if (innerType instanceof WildcardType) {
innerType = ((WildcardType) innerType).getUpperBounds()[0];
}
After Change
throw new IllegalStateException("ListenableFuture return type must be parameterized"
+ " as ListenableFuture<Foo> or ListenableFuture<? extends Foo>");
}
Type innerType = getParameterUpperBound(0, (ParameterizedType) returnType);
if (getRawType(innerType) != Response.class) {
// Generic type is not Response<T>. Use it for body-only adapter.